﻿Imports System.Data
Imports VSModel
Imports Cls_Common
Imports SecurityService

Partial Class Control_MSDS_ContentEditor
	Inherits System.Web.UI.UserControl
	Private Shared ReadOnly log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
#Region "Sub and Function "
	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		If Not IsPostBack Then
			'active tab tuong ung voi Page
            'InVisble button ko can thiet
            If Not Request.QueryString("Id") Is Nothing Then
                hidID.Value = Request.QueryString("Id")
                If hidID.Value <> "" Then
                    Dim ArrId As String() = hidID.Value.Split(",")
                    If (ArrId.Length <= 1) Then
                        LoadListStatus(hidID.Value)
                    End If
                End If
            End If


            setPermission()
			If Request.PhysicalPath.Contains("List.aspx") Then
				lbtList.CssClass = "current_manage"
                lbtList.Text = "<span class='current_manage'>Danh sách</span>"
				lbtEdit.Visible = False
				lbtView.Visible = False
				btnDelete.Visible = False
                tabs_state.Visible = False
                lbtUpload.Visible = False
                'Permission
            ElseIf Request.PhysicalPath.Contains("Create.aspx") Then
                lbtAdd.CssClass = "current_manage"
                lbtAdd.Text = "<span class='current_manage'>Thêm mới</span>"
                lbtEdit.Visible = False
                lbtView.Visible = False
                btnDelete.Visible = False
                tabs_state.Visible = False
                lbtUpload.Visible = False
                'Permission

			ElseIf Request.PhysicalPath.Contains("Detail.aspx") Then
				lbtView.CssClass = "current_manage"
				lbtView.Text = "<span class='current_manage'>Xem</span>"
				'Permission
				setPermission()
			ElseIf Request.PhysicalPath.Contains("Edit.aspx") Then
				lbtEdit.CssClass = "current_manage"
				lbtEdit.Text = "<span class='current_manage'>Sửa</span>"
				'Permission
            ElseIf Request.PhysicalPath.Contains("UploadVi.aspx") Then
                lbtUpload.CssClass = "current_manage"
                lbtUpload.Text = "<span class='current_manage'>Upload Vi</span>"
                'Permission
            End If


			btnDelete.Attributes.Add("onclick", "return ComfirmDialog('Bạn có chắc chắn muốn xóa không?',0,'" + btnDelete.ClientID + "','" + hidID.Value.ToString + "',1);")
		End If
	End Sub
    Sub LoadListStatus(ByVal _MSDSId As Integer)
        Using Data As New VSEntities
            'Get Current StatusId of object
            Dim cst = (From q In Data.MSDSOriginals Where q.Id = _MSDSId Select q).SingleOrDefault
            If Not cst Is Nothing Then
                Dim iCurrentStatusId As Byte = cst.StatusId
                hidStatusId.Value = cst.StatusId
                'Load action tuong ung voi current statusid
                Dim st = (From q In Data.StatusActions Where q.CurrentStatusId = iCurrentStatusId Select q Order By
                        q.NextStatusId).ToList()
                For Each i In st
                    If HasPermission(Function_Name.MSDSOriginal, Session("RoleID"), i.CurrentStatusId, i.Audit) Then
                        Dim _item As New ListItem(i.Title, i.NextStatusId)
                        cboAction.Items.Insert(0, _item)
                    End If
                Next
                Dim _curStatus As String = (From q In Data.Status Where q.StatusId = cst.StatusId Select q.Title).FirstOrDefault
                Dim iTem As New ListItem(_curStatus, iCurrentStatusId)
                cboAction.Items.Insert(0, iTem)
            End If

        End Using
    End Sub

    Protected Sub setPermission()
        lbtAdd.Visible = HasPermission(Function_Name.MSDSOriginal, Session("RoleID"), hidStatusId.Value, Audit_Type.Create)
        lbtView.Visible = HasPermission(Function_Name.MSDSOriginal, Session("RoleID"), hidStatusId.Value, Audit_Type.ViewContent)
        lbtEdit.Visible = HasPermission(Function_Name.MSDSOriginal, Session("RoleID"), hidStatusId.Value, Audit_Type.Edit)
        lbtUpload.Visible = HasPermission(Function_Name.MSDSOriginal, Session("RoleID"), hidStatusId.Value, Audit_Type.Edit)
        btnDelete.Visible = HasPermission(Function_Name.MSDSOriginal, Session("RoleID"), hidStatusId.Value, Audit_Type.Delete)
    End Sub

	Protected Sub lbtList_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtList.Click
		Response.Redirect("List.aspx")
	End Sub
	Protected Sub lbtAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtAdd.Click
		Response.Redirect("Create.aspx")
	End Sub
	Protected Sub lbtEdit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtEdit.Click
		Response.Redirect("Edit.aspx?Id=" & hidID.Value & "")
	End Sub
	Protected Sub lbtView_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtView.Click
		Response.Redirect("Detail.aspx?Id=" & hidID.Value & "")
	End Sub
	Protected Sub lnkbtnDelete_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDelete.Click
		Dim intId As Integer
		Dim strLogName As String = ""
		Using data As New VSEntities
			intId = hidID.Value
			Dim q = (From p In data.MSDSOriginals Where p.Id = intId Select p).FirstOrDefault
			Try
				data.MSDSOriginals.DeleteObject(q)
				data.SaveChanges()
				Excute_Javascript("Alertbox('Xóa dữ liệu thành công.');window.location ='../../Page/MSDS/List.aspx';", Me.Page, True)
				Insert_App_Log("Delete  MSDSOriginal:" & q.ItemCode & "--" & q.VendorCode & "", Function_Name.MSDSOriginal, Audit_Type.Delete, Request.ServerVariables("REMOTE_ADDR"), Session("UserName"))
			Catch ex As Exception
				log4net.Config.XmlConfigurator.Configure()
				log.Error("Error error " & AddTabSpace(1) & Session("Username") & AddTabSpace(1) & "IP:" & GetIPAddress(), ex)
				Excute_Javascript("Alertbox('Xóa thất bại.');", Me.Page, True)
			End Try
		End Using
	End Sub
#End Region

    Protected Sub cboAction_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles cboAction.SelectedIndexChanged
        'Nếu trạng thái đang chọn khác với trạng thái ban đầu thì mới đi chuyển trạng thái
        If (cboAction.SelectedValue <> cboAction.Items(0).Value) Then
            Response.Redirect("Action.aspx?Id=" & hidID.Value & "&CStatusId=" & cboAction.Items(0).Value & "&NStatusId=" & cboAction.SelectedValue)
        End If
    End Sub

    Protected Sub lbtUpload_Click(sender As Object, e As System.EventArgs) Handles lbtUpload.Click
        Response.Redirect("UploadVi.aspx?Id=" & hidID.Value & "")
    End Sub
End Class
